const {
  CLIENT_ERR_CODE,
  SERVER_ERR_CODE,
  CLIENT_ERR_MSG,
  SERVER_ERR_MSG,
} = require('./app/constant');
const { errHandler, successHandler } = require('./app/tools');

module.exports = (app) => {
  // 应用启动前
  app.beforeStart(async () => {
    // 参数格式异常
    app.on('client.params.error', (data) => {
      const { ctx, error } = data;

      errHandler(ctx, error, CLIENT_ERR_CODE, CLIENT_ERR_MSG);
    });
    // 客户端校验异常
    app.on('server.params.error', (data) => {
      const { ctx, error } = data;

      errHandler(ctx, error, SERVER_ERR_CODE, SERVER_ERR_MSG);
    });
    // 客户端校验异常
    app.on('req.success', (data) => {
      const { ctx, result, code } = data;

      successHandler(ctx, result, code);
    });

    // 监听内置事件
    // app.on('error', (err, ctx) => {
    //   console.error('应用错误:', err);
    // });

    app.on('response', (ctx) => {
      // console.log('响应完成:', ctx.status);
    });
  });

  // 应用启动后
  app.ready(() => {});
};
